package com.marktotop.vo.business;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;

/**
 * VaccinatorReservationVO - 预约人预约记录
 *
 * @author WXLD
 * @Data 2021/7/17
 * @Since 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VaccinatorReservationVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 预约人信息
     */
    @ApiModelProperty(value = "接种人id")
    private Long id;

    @ApiModelProperty(value = "真实姓名")
    @NotBlank(message = "真实姓名不能为空")
    private String realName;

    @ApiModelProperty(value = "性别 0男 1女 2保密")
    private Integer sex;

    @ApiModelProperty(value = "接种人手机号")
    @NotBlank(message = "电话号码不能为空")
    private String vaccinatorPhone;

    @ApiModelProperty(value = "所属区域")
    @NotBlank(message = "所属区域不能为空")
    private String vaccinatorArea;

    @ApiModelProperty(value = "住址")
    @NotBlank(message = "地址信息不能为空")
    private String vaccinatorAddress;

    @ApiModelProperty(value = "是否有过敏史")
    private Boolean allergy;

    @ApiModelProperty(value = "是否身体健康")
    private Boolean health;

    @ApiModelProperty(value = "备注信息")
    private String remark;

    /**
     * 预约疫苗信息
     */
    @ApiModelProperty(value = "疫苗id")
    private Long vaccineId;

    @ApiModelProperty(value = "疫苗名称")
    private String vaccineName;

    @ApiModelProperty(value = "疫苗种类")
    private Integer vaccineType;

    @ApiModelProperty(value = "疫苗等级")
    private Integer vaccDegree;

    @ApiModelProperty(value = "针数")
    private Integer totalNeedle;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    /**
     * 预约接种地信息
     */
    @ApiModelProperty(value = "接种点名称")
    private String vaccSiteName;

    @ApiModelProperty(value = "所属区域")
    private String vaccSiteArea;

    @ApiModelProperty(value = "详细地址")
    private String vaccSiteAddress;

    @ApiModelProperty(value = "接种点电话")
    private String vaccSitePhone;

    /**
     * 预约信息
     */
    @ApiModelProperty(value = "预约日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date reservationDate;

    @ApiModelProperty(value = "预约时间段(0上午,1下午)")
    private Integer reservationTime;

    @ApiModelProperty(value = "预约该疫苗的第几针")
    private Integer vaccineNeedle;

    @ApiModelProperty(value = "预约状态(1已预约2已受理)")
    private Integer states;

    @ApiModelProperty(value = "预约二维码")
    private String qrCode;

}
